חברה מזעזעת שולחת מטלת בית לא מובנת ולמרות זאת ישבתי עליה כ4 שעות למרות שהHR אומרת שזה שעתיים (בטח!!)
לפני שליחת הפתרון, שלחתי מייל עם מספר שאלות על מנת לוודא,
הHR חזרה אלי ואמרה שהיא מצטערת והם כבר התקדמו עם מומעד אחר וחבל שאני אתאמץ (כמובן שזה שקר) והמשרה המשיכה להתפרסם אני רק לא מבין אם החלטתם לפסול אותי למה הבאתם את מטלת הבית... ראו הוזרהתם מסתבר שאני לא הראשון שהחברה מתייחסת אליו בשחצנות לא הייתי רוצה לעבוד במקום כזה
שאלות מתוך הראיון
Implementing functions in C++11 (or higher)
a) Create a “Sum” function that gets ints and returns their sum.
The function can be called with any number of parameters.
For example:
sum(2,5,10)
sum(2,5,10,2,5,102,5,102,5,10)
sum(3)
b) Create a template function that receives std::array of ints of an even
size and returns std::array in which each variable “i” is the sum of
the input variables 2*i, 2*i+1
For example:
{1,2,100,150,200,700} -> {3,250,900}
שלחתי קו"ח וחזרו אלי, הHR שלהם שלחה לי מבחן בית ואמרה הוא לוקח בערך שעתיים, וגם יש אפשרות לשאול שאלות עליו, מבחן הבית הוא אותו מבחן בית שפרסמו לפני ובנוסף שתי שאלות תכנות ראשונות ליצור סכום ועוד שאלה.
שעתיים זה לא...
אחרי שאני יושב על המבחן שלוש שעות התעוררו אצלי שאלות ושלחתי להם הHR חזרה אלי ואמרה לי שראתה שאני שאלתי שאלות ושחבל שאני אשב על המבחן כי הם כבר עם מומעד מתקדם.
אחרי יום הם פרסמו שוב את המשרה הזאת...
אין לי בעיה לא להיות מתאים יש לי בעיה בזלזול באנשים... תראו את זה כאזהרה..
שאלות מתוך הראיון
a) Create a “Sum” function that gets ints and returns their sum.
The function can be called with any number of parameters.
For example:
sum(2,5,10)
sum(2,5,10,2,5,102,5,102,5,10)
sum(3)
b) Create a template function that receives std::array of ints of an even
size and returns std::array in which each variable “i” is the sum of
the input variables 2*i, 2*i+1
For example:
{1,2,100,150,200,700} -> {3,250,900}
תשובות
הוסף תשובה
|
לצפיה בתשובות
יולי 2022
First question:
template
T Sum(T t) { return t; }
template
T Sum(T t, Args... args) { return t + Sum(args...);
}
סהכ מאוד נהנתי מהתהליך כי הם תיקתקו הכל (מראה על רצינות כלפי הזמן שלי), והתוכן הוא כזה שתמיד נמשכתי אליו.
הייתה שאלה שבוחנת האם למועמד יש חשיבה מתאימה ולכן השאלה עצמה אינה מוגדרת הרמטית אלא נתונה לפרשנות.
וידאתי כמה נקודות עם הבודק שהגיב לי מיד והתחלתי לכתוב - הקידוד עצמו היה מאוד מהיר.
בדיעבד למדתי שהשאלה הזה לוטשה ממש לאחרונה והיום היא מאוד ברורה (ארגון לומד זה קריטי)
מאוד מקווה שעזרתי!
שאלות מתוך הראיון
מטלת בית קצרה, ראיון מקצועי כשעה-שעה וחצי ושיחה עם משאבי אנוש.
מבחן בית שבו נתונה תוכנית עם מבנים ובה צריך להגדיר מה היא עסקה חוקית בבלוקציין.
שאלות מתוך הראיון
struct Transaction
{
//creator of transaction and sender of funds
Address from;
//transaction destination
Address to;
//amount of money to send to the destination
Satoshi amount;
//amount of fee is offered by the creator to the miner to add this
transaction to the blockchain
Satoshi fee;
//creation time, written by the transaction creator
time_t creationTime;
//signing {from,amount,to,fee,creation time}
uint8_t signature[SIG_LENGTH];
};
struct Block
{
//holds up to 10 transactions
std::vector trans;
//the miner that added the block to the blockchain
Address miner;
// the next block at the blockchain (is nullptr for the last block)
Block * next;
};
class Blockchain
{
//not null
Block * m_firstBlock;
public:
חלק ממה שמתואר כאן אינו מדויק ולא יעבוד בבלוקצ'יין אמיתי, ושונה לצורך קלות התרגיל.
בלוקצ'יין הוא סוג של מסד נתונים מבוזר שמה שכל כך מיוחד בו הוא שברגע שנכתב בו מידע, המידע לא ימחק לעולם.
איך עושים זאת? בכל כמה זמן נוצר בלוק עם כמה רשומות בבלוקצ'יין ונשלח לכל משתתפי הרשת, כל משתתף יודע שברגע שהוא קיבל בלוק חוקי, הוא צריך לשמור אותו לנצח.
כשרוצים להוסיף מידע חדש לבלוקצ'יין, פותחים בלוק חדש כשכל בלוק מצביע לבלוק שנוצר אחריו.
שאלות מתוך הראיון
*מיינרים הם שרתים שהתפקיד שלהם בחיים היא להוסיף בלוקים לבלוקצ'יין, כל המיינרים מנסים בכל רגע נתון להוסיף בלוקים, ופעם בכמה זמן אחד מהם מצליח.
כדי לתמרץ מיינרים לנסות להוסיף בלוקצ'יין ובכך לגרום לרשת לעבוד, הם מקבלים על כל בלוק חדש שהם יוצרים, אלף מטבעות (מסומן בקוד ב(MONEY_CREATED_FOR_THE_MINER_EACH_BLOCK
בנוסף, על כל טרנזקציה שנשלחת המיינר מקבל מיוצר הטרנזציה את הFee
הערה חשובה, על כל טרנזקציה, השולח משלם amount+fee המקבל מקבל רק amount והמיינר של הבלוק בה נכנסה הטרנזקציה מקבל fee.
נקודות והערות לקוד:
אין צורך לספק בדיקות יחד עם הקוד
אין שום חשיבות ליעילות – כל עוד הקוד עובד
לא לבדוק את תקינות החתימה, הניחו כי היא חוקית
ניתן להניח כי m_firstBlock מכיל פוינטר לבלוק הראשון של בלוקציין חוקי המכיל לפחות בלוק אחד
הדבר הכי הכי הכי חשוב, הוא לשים לב לכל מקרי הקצה, לחשוב שכל מי ששולח לך את הקלט לפונקציות הוא רשע
מצורף קוד המממש את תחילת הבלוקציין הזה, תוסיפו את המימוש של פונקציית isValid, פונקציה המקבלת טרנזקציה ובודקת אם היא תקינה להוספה לבלוקצ'יין
מבחן בית שבו מתוארת סכמה של בלוקציין על ידי מבנים בC++,ויש צורך לבדוק האם עסקה היא חוקית.
שאלות מתוך הראיון
חברה קיקיונית כמו העומדים בראשה,נתחיל מזה שרמת האנגלית במטלת הבית הייתה ברמה של כיתה ו',נראה שאף אחד לא טרח לבדוק מה כתוב במטלה ובעיקר איך.בנוסף לא הוגדר מה מבחינתם היא עסקה חוקית, היחס של ה"חברה" למבחן הבית זהה ליחס שלה כלפי המועמדים.
נראה ששאר האנשים שרשמו את חוות דעתם מסכימים איתי.
להתרחק מהחברה הזאת כמו מאש!